package thread;

/**
 * java中所有的代码都是靠线程执行的，main方法也不例外，JVM启动后会创建一条线程
 * 来执行main方法，这个线程称为"主线程"。
 *
 * 线程提供了一个静态方法:
 * static Thread currentThread()
 * 该方法可以获取运行这个方法的线程
 *
 * current:当前的
 */
public class ThreadInfoDemo {
    public static void main(String[] args) {
        //在main方法中调用该方法，等于是主线程执行该方法，因此方法会返回主线程
        Thread main = Thread.currentThread();
        System.out.println(main);
        showInfo();

        //让主线程再启动一个线程
        Thread t = new Thread(()->showInfo());
        //将该线程跑起来
        t.start();

    }
    public static void showInfo(){
        Thread t = Thread.currentThread();
        System.out.println("调用showInfo方法的线程是"+t);
        //获取线程名称
        String name = t.getName();
        System.out.println("线程名字:"+name);
        //获取线程id(唯一标识)
        long id = t.getId();
        System.out.println("线程id:"+id);
        //获取线程优先级
        int priority = t.getPriority();
        System.out.println("优先级:"+priority);
        //判断是否是守护线程
        boolean isDaemon = t.isDaemon();
        System.out.println("是否为守护线程:"+isDaemon);
        //判断是否存活
        boolean isAlive = t.isAlive();
        System.out.println("是否存活:"+isAlive);
        //判断是否中断
        boolean isInterrupted = t.isInterrupted();
        System.out.println("是否中断:"+isInterrupted);
    }
}
